package com.common.platform.base.utils;

import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class IpInfoUtils {

    /**
     * 获取客户端IP地址
     */
    public static String getIpAdder(HttpServletRequest request){
        String ip =request.getHeader("x-forwarded-for");
        if (ip==null || ip.length()==0 || "unknown".equalsIgnoreCase(ip)){
            ip=request.getHeader("Proxy-Client-IP ");
        }
        if(ip==null || ip.length()==0 ||"unknown".equalsIgnoreCase(ip)){
            ip=request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip==null || ip.length()==0 || "unknown".equalsIgnoreCase(ip)){
            ip =request.getRemoteAddr();
            if (ip.equals("127.0.0.1")){
                InetAddress inet =null;
                try {
                    inet =InetAddress.getLocalHost();
                }catch (UnknownHostException e){
                    e.printStackTrace();
                }
                ip =inet.getHostAddress();
            }
        }
        if (ip!=null && ip.length()>15){
            if (ip.indexOf(",")>0){
                ip= ip.substring(0,ip.indexOf(","));
            }
        }
        if (ip.equals("0:0:0:0:0:0:0:1")){
            ip="127.0.0.1";
        }
        return ip;
    }

    /**
     * 获取客户端主机名
     */
    public static String getHostName(){
        try{
            return InetAddress.getLocalHost().getHostName();
        }catch (UnknownHostException e){
            e.printStackTrace();
        }
        return "未知";
    }
}
